package com.hildeberto.home.client;

import com.conseilimmo.bo.util.ConstantesConseilImmo;
import com.conseilimmo.repository.PersonneBsn;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import objetsBd.BatimentBd;
import objetsBd.PersonneBd;

/**
 *
 * @author Stéphan
 */
public class ListePersonneController   implements Initializable{
     private static final Logger LOGGER = Logger.getLogger(ListePersonneController.class.getName());
     @FXML
    TableView<PersonneBd> tablePersonnes;
    @FXML
    TableColumn<PersonneBd, String> nomCol;
    @FXML
    TableColumn<PersonneBd, String> prenomCol;
       @Override
    public void initialize(URL url, ResourceBundle rb) {
        tablePersonnes.getItems().setAll(listePersonnes());
        tablePersonnes.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
            // this method will be called whenever user selected row
            @Override
            public void changed(ObservableValue observale, Object oldValue, Object newValue) {
                BatimentBd selectedUser = (BatimentBd) newValue;
                LOGGER.log(Level.INFO, "id sel:{0}", selectedUser.getIdBatiment());
            }
        });
        nomCol.setSortType(TableColumn.SortType.ASCENDING);
        prenomCol.setSortType(TableColumn.SortType.ASCENDING);
    }

    private PersonneBd[] listePersonnes() {
         if(!MainApp.getModeAvecBd()){
        List<PersonneBd> batiments = new ArrayList<>();
         PersonneBd batiment = new PersonneBd();
         batiment.setIdPersonne(1L);
         batiment.setNom("nom1");
         
         PersonneBd batiment2 = new PersonneBd();
         batiment2.setIdPersonne(2L);
         batiment2.setNom("nom2");
         
         batiments.add(batiment);
         batiments.add(batiment2);
         return batiments.toArray(new PersonneBd[batiments.size()]);
                 }else{
        PersonneBsn batimentBsn = new PersonneBsn();
        List<PersonneBd> batiments = batimentBsn.trouverListePersonnes();
        return batiments.toArray(new PersonneBd[batiments.size()]);
        }
    }
     @FXML
    private void btnVoirPersonne(ActionEvent event) throws IOException {
PersonneController controller = MainApp.getPersonneController();
        if (tablePersonnes.getSelectionModel().getSelectedItem() != null) {
            
            controller.changerDePersonne(tablePersonnes.getSelectionModel().getSelectedItem());
            
            FXMLController controllerEcran = MainApp.getController();
            controllerEcran.afficherEcran(ConstantesConseilImmo.URL_PERSONNE);
        }
    }
}
